{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2 Physical GPUs, 2 Logical GPUs\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "import graphgallery \n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "# Set if memory growth should be enabled for ALL `PhysicalDevice`.\n",
    "graphgallery.set_memory_growth()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2.1.2'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tf.__version__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.4.0'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "graphgallery.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load the Datasets\n",
    "+ cora\n",
    "+ citeseer\n",
    "+ pubmed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from graphgallery.data import Planetoid\n",
    "\n",
    "# set `verbose=False` to avoid these printed tables\n",
    "data = Planetoid('cora', root=\"~/GraphData/datasets/\", verbose=False)\n",
    "graph = data.graph\n",
    "idx_train, idx_val, idx_test = data.split()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'citeseer', 'cora', 'pubmed'}"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.supported_datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training...\n",
      "50/50 [==============================] - 3s 52ms/step - loss: 0.0360 - acc: 1.0000 - val_loss: 1.1641 - val_acc: 0.7800 - time: 2.6072\n",
      "Testing...\n",
      "10/10 [==============================] - 0s 2ms/step - test_loss: 1.2101 - test_acc: 0.8230 - time: 0.0188\n",
      "Test loss 1.2101, Test accuracy 82.30%\n"
     ]
    }
   ],
   "source": [
    "from graphgallery.nn.models import ClusterGCN\n",
    "model = ClusterGCN(graph, n_clusters=10, attr_transform=\"normalize_attr\", device='GPU', seed=123)\n",
    "model.build()\n",
    "# train with validation\n",
    "his = model.train(idx_train, idx_val, verbose=1, epochs=50)\n",
    "# train without validation\n",
    "# his = model.train(idx_train, verbose=1, epochs=100)\n",
    "loss, accuracy = model.test(idx_test)\n",
    "print(f'Test loss {loss:.5}, Test accuracy {accuracy:.2%}')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Show model summary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"gcn\"\n",
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "attr_matrix (InputLayer)        [(None, 1433)]       0                                            \n",
      "__________________________________________________________________________________________________\n",
      "adj_matrix (InputLayer)         [(None, None)]       0                                            \n",
      "__________________________________________________________________________________________________\n",
      "graph_convolution (GraphConvolu (None, 32)           45856       attr_matrix[0][0]                \n",
      "                                                                 adj_matrix[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "dropout (Dropout)               (None, 32)           0           graph_convolution[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "graph_convolution_1 (GraphConvo (None, 7)            224         dropout[0][0]                    \n",
      "                                                                 adj_matrix[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "node_index (InputLayer)         [(None,)]            0                                            \n",
      "__________________________________________________________________________________________________\n",
      "gather (Gather)                 (None, 7)            0           graph_convolution_1[0][0]        \n",
      "                                                                 node_index[0][0]                 \n",
      "==================================================================================================\n",
      "Total params: 46,080\n",
      "Trainable params: 46,080\n",
      "Non-trainable params: 0\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Visualization Training "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "with plt.style.context(['science', 'no-latex']):\n",
    "    fig, axes = plt.subplots(1, 2, figsize=(15, 5))\n",
    "    axes[0].plot(his.history['acc'], label='Train accuracy')\n",
    "    axes[0].plot(his.history['val_acc'], label='Val accuracy')\n",
    "    axes[0].legend()\n",
    "    axes[0].set_title('Accuracy')\n",
    "    axes[0].set_xlabel('Epochs')\n",
    "    axes[0].set_ylabel('Accuracy')\n",
    "\n",
    "\n",
    "    axes[1].plot(his.history['loss'], label='Training loss')\n",
    "    axes[1].plot(his.history['val_loss'], label='Validation loss')\n",
    "    axes[1].legend()\n",
    "    axes[1].set_title('Loss')\n",
    "    axes[1].set_xlabel('Epochs')\n",
    "    axes[1].set_ylabel('Loss')\n",
    "    \n",
    "    plt.autoscale(tight=True)\n",
    "    plt.show()    "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
